// 导入必要的模块
const express = require('express');
const cors = require('cors');
const dotenv = require('dotenv');
const path = require('path');

// 加载环境变量
dotenv.config();

// 创建Express应用
const app = express();
const PORT = process.env.PORT || 3000;

// 中间件配置
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// 静态文件服务（如果需要）
app.use(express.static(path.join(__dirname, 'public')));

// 简单的健康检查路由
app.get('/', (req, res) => {
  res.json({
    message: 'AI角色扮演网页后端服务运行正常',
    status: 'ok'
  });
});

// 导入路由
const userRoutes = require('./routes/userRoutes');
const characterRoutes = require('./routes/characterRoutes');
const chatRoutes = require('./routes/chatRoutes');

// 设置API路由
app.use('/api/users', userRoutes);
app.use('/api/characters', characterRoutes);
app.use('/api/chat', chatRoutes);

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({
    message: '服务器内部错误',
    error: process.env.NODE_ENV === 'development' ? err.message : '未知错误'
  });
});

// 404 错误处理
app.use((req, res) => {
  res.status(404).json({
    message: '请求的资源不存在'
  });
});

// 启动服务器
app.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`);
});

// 导出app供测试使用
module.exports = app;